﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
using System.Text.RegularExpressions;
using System.Web.UI;
using System.Web.UI.WebControls;
using Insifo.WE;

public partial class regConfirmValid : ObjectPage
{
    #region CONSTANTES

    protected const string DIRECTORIO_PLANTILLA = "/App_Data/ptl/ptlNotificacion.html";
    protected const string RUTA_SIGNUP = @"/seg/segAcceso.aspx";

    #endregion CONSTANTES

    #region PROPIEDADES


    #endregion PROPIEDADES

    #region EVENTOS

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Cargar();
        }
    }

    protected void btnAceptar_Click(object sender, EventArgs e)
    {
        IrInicio();
    }

    #endregion EVENTOS

    #region METODOS


    protected void Cargar()
    {
        string strCadena = Request.QueryString["d"];  //Cadena con los 
        if (!string.IsNullOrEmpty(strCadena))
        {
            lblCuentaUsuario.Text = string.Format(Resources.resMensaje.msgInfoCuentaFinalizadaInactividad,strCadena);
            IrInicio();
        }
    }

    protected void IrInicio()
    {
        string strDominioActual = ObtenerDominio();
        string strURLInicio = string.Empty;
        bool blVerDominioAplicacion = false;
        if (!string.IsNullOrEmpty(strDominioActual))
        {
            DataTable dtDominio = ListarAplicacionDominioPorAplicacion(Constantes.IDAPLICACION_SYSTEM);
            DataRow[] arr = dtDominio.Select(string.Format("{0} = '{1}' ", "Dominio", strDominioActual));

            if (arr != null && arr.Length > 0)
            {
                strURLInicio = string.Format("{0}{1}", arr[0]["DominioURL"].ToString(), RUTA_SIGNUP);
            }
            else
            {
                blVerDominioAplicacion = true;
            }
        }
        else
        {
            blVerDominioAplicacion = true;
        }
        if (blVerDominioAplicacion)
        {
            WCAplicacion.BEAplicacion beApl = ObtenerAplicacion(Constantes.IDAPLICACION_SYSTEM);
            if (beApl != null && !string.IsNullOrEmpty(beApl.DominioURL))
            {
                strURLInicio = string.Format("{0}{1}", beApl.DominioURL, RUTA_SIGNUP);
            }
        }
        btnAceptar.PostBackUrl = strURLInicio;
    }

    protected string ObtenerDominio()
    {
        string strDominioActual = string.Empty;
        DataTable dtDominio = ListarAplicacionDominioPorAplicacion(Constantes.IDAPLICACION_REG);
        string strURLDominioActual = Util.URLDominioActual();
        //DataRow[] drs = dtDominio.Select(" Upper(DominioURL) ='" + strURLDominioActual.ToUpper() + "'");
        foreach (DataRow dr in dtDominio.Rows)
        {
            if (dr["DominioURL"].ToString().ToUpper() == strURLDominioActual.ToUpper())
            {
                strDominioActual = dr["Dominio"].ToString();
                break;
            }
        }
        return strDominioActual;
    }

    #endregion METODOS

    #region LLAMADAS A WEBSERVICES


    /// <summary>
    /// Método recupera las Dominios de Aplicacion 
    /// </summary>
    /// <returns>Devuelve un DataSet</returns>
    public DataTable ListarAplicacionDominioPorAplicacion(int pinIdAplicacion)
    {
        DataTable dt = new DataTable();
        WCAplicacionDominio.BEAplicacionDominio beAplicacionDominio = new WCAplicacionDominio.BEAplicacionDominio();
        beAplicacionDominio.IdAplicacion = pinIdAplicacion;
        using (var client = new ServiceClient<WCAplicacionDominio.IWCAplicacionDominio>("BasicHttpBinding_IWCAplicacionDominio"))
        {
            dt = client.ServiceOperation<DataTable>(c => c.ListarPorAplicacion(beAplicacionDominio).Tables[0]);
        }
        return dt;
    }

    /// <summary>
    /// Método recupera una Aplicacion
    /// </summary>
    /// <returns>Devuelve un DataSet</returns>
    public WCAplicacion.BEAplicacion ObtenerAplicacion(int pintIdAplicacion)
    {
        WCAplicacion.BEAplicacion be = new WCAplicacion.BEAplicacion();
        be.IdAplicacion = pintIdAplicacion;
        using (var client = new ServiceClient<WCAplicacion.IWCAplicacion>("BasicHttpBinding_IWCAplicacion"))
        {
            be = client.ServiceOperation<WCAplicacion.BEAplicacion>(c => c.Obtener(be));
        }
        return be;
    }

    #endregion LLAMADAS A WEBSERVICES

   
}